package com.ef.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.ef.constant.EClassEntityType;
import com.ef.constant.EClassType;
import com.ef.constant.ETimeline;
import com.ef.domain.ClassEntity;
import com.ef.util.CustomExample;
import com.ef.util.PaginationSupport;

/**
 * 排课情况。
 * @author CYG
 * create:2009-12-22 下午11:19:07
 */
public interface ClassArrangeService extends BaseService {
	/*
	 * 获取某年某周的排课情况。 按日期以及时间进行了排序.
	 */
	public List<ClassEntity> getClassEntity(int year, int week);
	
	public ClassEntity findById(Long id);
	
	public void saveOrUpdate(ClassEntity entity);
	
	public void delete(ClassEntity entity);
	
	public PaginationSupport<ClassEntity> findByExample(
			CustomExample<ClassEntity> example, int startIndex, int pageSize);
	
	public  List<ClassEntity>  getClassEntityByDateTime(Date date, ETimeline timeline) ;
	
	public  List<ClassEntity>  getClassEntityList(Date date) ;
	
	public  List<ClassEntity>  getClassEntityListByClassEntityType(Date date,EClassEntityType classEntityType) ;
	
	public  List<ClassEntity>  getClassEntityListByClassType(Date date,EClassType classType) ;
	
	public  List<ClassEntity>  getClassEntityListByClassEntityType(Date date,ArrayList<EClassEntityType> classEntityTypes) ;
	
	public  List<ClassEntity>  getClassEntityListByClassType(Date date,ArrayList<EClassType> classTypes) ;
	
	public  ClassEntity  getClassEntityByDateTimeAndTeacher(Date date, ETimeline timeline, Long teacherid) throws Exception ;
	
	public  HashMap<Long,HashMap<String,ClassEntity>> getClassEntityMapInTime(Date fDate,Date lDate);
	
	public  ClassEntity  getClassEntityByDateTimeAndClassroom(Date date, ETimeline timeline, Long classroomid) throws Exception ;
		
	public String getClassCheckMessage(Date date, ETimeline timeline);
 }
